Computer stereo vision systems typically include two cameras to obtain two different views of the same image scene. Objects and surfaces in the two different views may appear at slightly different locations due to the cameras' different perspectives on the image scene. Local block matching stereo methods may be used to recover depths from the two different views. However, it may be difficult to recover depths of objects and surfaces in views with complicated surfaces, for example, non-textured surfaces and slanted surfaces. Thus, local block matching stereo methods for recovering depths from camera images typically fail to determine valid depths due to fronto-parallel assumption and lack of texture, among other issues.